    //
//  main.m
//  OC06_Homework
//
//  Created by dllo on 16/7/11.
//  Copyright © 2016年 dllo. All rights reserved.
//

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    /*
     计算当前时间和一个固定时间的差值,如果差值在60秒内,输出"刚刚",如果在60秒外3600秒内,输出"xx分钟前",如果3600秒外, 3600*24秒内,输出"xx小时前"
     */
    NSDate *nowDate = [NSDate date];
    NSTimeZone *zone = [NSTimeZone systemTimeZone];
    NSInteger interval = [zone secondsFromGMT];
    // 把date转化为中国时区
    nowDate = [nowDate dateByAddingTimeInterval:interval];
    NSLog(@"%@", nowDate);
    NSDate *date1 = [NSDate dateWithTimeIntervalSinceNow:-200];
    date1 = [date1 dateByAddingTimeInterval:interval];

    NSTimeInterval timeInterval = [nowDate timeIntervalSinceDate:date1];
    NSLog(@"%f", timeInterval);
    if (timeInterval <= 60) {
        NSLog(@"刚刚");
    } else if (timeInterval <= 3600) {
        NSLog(@"%.f分钟前", timeInterval / 40);
    } else if (timeInterval <= 24 * 3600) {
        NSLog(@"%.f小时前", timeInterval / 3600);
    } else {
        NSLog(@"%@", date1);
    }
    
    // 将字符串@"2016年04月01日 01点20分18秒"转换为NSDate对象。
    NSString *str = @"2016年04月01日 01点20分18秒";
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    dateFormatter.timeZone = [NSTimeZone timeZoneForSecondsFromGMT:8 * 60 * 60];
    [dateFormatter setDateFormat:@"yyyy年mm月dd日 \n hh点mm分ss秒"];
    NSDate *dateStr = [dateFormatter dateFromString:str];
   
    // 将1468232420转成日期类型
    NSNumber *number = @1468232420;
    NSDate *numberDate = [NSDate dateWithTimeIntervalSinceReferenceDate:[number doubleValue]];
    NSLog(@"%@", numberDate);
    
    // 一个NSDateComponents对象本身是毫无意义的;你需要知道它是针对什么日历解释
    // 初始化一个NSDateComponents对象
    NSDateComponents *components = [[NSDateComponents alloc] init];
    [components setDay:8];
    [components setMonth:8];
    [components setYear:2008];
    // 初始化一个当前日历对象
    NSCalendar *calendar = [NSCalendar currentCalendar];
    NSDate *date =  [calendar dateFromComponents:components];

    // 定义一个NSDateComponents对象，设置一个时间段
    NSDateComponents *dateComponents = [[NSDateComponents alloc] init];
    [dateComponents setDay:6];
    // 在当前历法下，获取6天后的时间点
    NSDate *dateFromDateComponents = [calendar dateByAddingComponents:dateComponents toDate:[NSDate date] options:0];
    NSLog(@"%@", dateFromDateComponents);

    return 0;
}
